home *** CD-ROM | disk | FTP | other *** search
- 10 DEFDBL A-Z
- 12 WT=1721027!
- 14 YT=2415020!
- 16 XX=6.6460656#
- 18 ZZ=2400.051262#
- 20 DEF FNRAD(X)=X*.0174532928#
- 30 DEF FNDEG(X)=X*57.2957787#
- 40 DEF FNARCSIN(X)=ATN(X/SQR(1-X^2))
- 50 DEF FNARCCOS(X)=1.570796-ATN(X/SQR(1-X^2))
- 60 Q=0
- 70 CLS:LOCATE 4,7:PRINT "Select the Planet desired:"
- 80 LOCATE 6,15:PRINT "1 - Mercury"
- 90 LOCATE 8,15:PRINT "2 - Venus"
- 100 LOCATE 10,15:PRINT "3 - Mars"
- 110 LOCATE 12,15:PRINT "4 - Jupiter"
- 120 LOCATE 14,15:PRINT "5 - Saturn"
- 130 LOCATE 16,15:PRINT "6 - Neptune"
- 140 LOCATE 18,15:PRINT "7 - Uranus"
- 150 LOCATE 21,7:INPUT "Type number selection here: ",P
- 160 IF P=1 THEN GOSUB 10000
- 170 IF P=2 THEN GOSUB 10100
- 180 IF P=3 THEN GOSUB 10200
- 190 IF P=4 THEN GOSUB 10300
- 200 IF P=5 THEN GOSUB 10400
- 210 IF P=6 THEN GOSUB 10600
- 220 IF P=7 THEN GOSUB 10500
- 230 CLS:LOCATE 8,7:PRINT "For What Date?"
- 240 LOCATE 10,15:INPUT "Month (##): ",MM
- 250 UT=MM
- 260 LOCATE 12,15:INPUT "Day (##) : ",DD
- 270 LOCATE 14,15:INPUT "Year(####): ",YEAR
- 275 CLS
- 280 IF MM<2 THEN MM=(((MM-1)*63)/2)
- 290 IF MM>1 THEN MM=(((MM+1)*30.6)-63)
- 300 DAYS=MM+DD+1:DAYS%=INT(DAYS):RDY%=DAYS%
- 310 YRNUMBER=YEAR-1980
- 320 DAYSINCE=YRNUMBER*365
- 330 IF YRNUMBER>0 AND YRNUMBER<6 THEN DAYSINCE=DAYSINCE+1
- 340 IF YRNUMBER>5 AND YRNUMBER<10 THEN DAYSINCE=DAYSINCE+2
- 350 IF YRNUMBER>9 AND YRNUMBER<14 THEN DAYSINCE=DAYSINCE+3
- 360 IF YRNUMBER>13 AND YRNUMBER<18 THEN DAYSINCE=DAYSINCE+4
- 370 IF YRNUMBER>17 AND YRNUMBER<22 THEN DAYSINCE=DAYSINCE+5
- 380 IF YRNUMBER>21 AND YRNUMBER<26 THEN DAYSINCE=DAYSINCE+6
- 390 IF YRNUMBER>25 AND YRNUMBER<30 THEN DAYSINCE=DAYSINCE+7
- 400 DAYS%=DAYS%+DAYSINCE
- 410 LOCATE 16,15:INPUT "Daylight Savings Time (Y/N)??? ",DL$
- 420 LOCATE 18,15:INPUT "What is the latitude? ",PHI
- 430 'PLANET CALCULATIONS
- 440 I1=FNRAD(I1)
- 450 NPLANET=(360/365.2422)*(DAYS%/T1)
- 460 IF NPLANET>0 AND NPLANET<360 THEN GOTO 480
- 470 IF NPLANET<0 THEN NPLANET=NPLANET+360:GOTO 460
- 475 IF NPLANET>360 THEN NPLANET=NPLANET-360:GOTO 460
- 480 MPLANET=FNRAD(NPLANET+E1-W1)
- 490 MPLANET=SIN(MPLANET)
- 500 LPLANET=NPLANET+((360/3.1415927#)*C1*MPLANET)+E1
- 510 IF LPLANET>0 AND LPLANET<360 THEN GOTO 540
- 520 IF LPLANET<0 THEN LPLANET=LPLANET+360:GOTO 510
- 530 IF LPLANET>360 THEN LPLANET=LPLANET-360:GOTO 510
- 540 VPLANET=FNRAD(LPLANET-W1)
- 550 VPLANET=COS(VPLANET)
- 560 RPLANET=(A1*(1-C1^2))/(1+C1*VPLANET)
- 570 'EARTH POSITIONAL CALCULATIONS
- 580 NEARTH=(360/365.2422)*(DAYS%/1.00004)
- 590 IF NEARTH>0 AND NEARTH<360 THEN GOTO 620
- 600 IF NEARTH<0 THEN NEARTH=NEARTH+360
- 610 IF NEARTH>360 THEN NEARTH=NEARTH-360
- 620 MEARTH=SIN(FNRAD(NEARTH+98.83354#-102.596403#))
- 630 LEARTH=NEARTH+((360/3.1415927#)*.016718*MEARTH)+98.83354#
- 640 IF LEARTH>0 AND LEARTH<360 THEN GOTO 670
- 650 IF LEARTH<0 THEN LEARTH=LEARTH+360:GOTO 640
- 660 IF LEARTH>360 THEN LEARTH=LEARTH-360:GOTO 640
- 670 VEARTH=COS(FNRAD(LEARTH-102.596403#))
- 680 REARTH=.9997205/(1+.016718*VEARTH)
- 690 PSI1=(SIN(FNRAD(LPLANET-L1))*SIN(I1))
- 700 PSI=FNARCSIN(PSI1)
- 710 YCOORD=(SIN(FNRAD(LPLANET-L1))*COS(I1))
- 720 XCOORD=COS(FNRAD(LPLANET-L1))
- 730 TCOORD=FNDEG(ATN(YCOORD/XCOORD))
- 740 'QUADRANT CALCULATIONS
- 750 GOSUB 11000
- 760 LPRIME=TCOORD+L1
- 770 IF LPRIME>360 THEN LPRIME=LPRIME-360:Q=1
- 780 RPRIME=RPLANET*COS(PSI)
- 790 IF P>2 THEN GOTO 15000
- 800 L3=FNRAD(LEARTH-LPRIME)
- 810 ACAP=FNDEG(ATN((RPRIME*SIN(L3))/(REARTH-(RPRIME*COS(L3)))))
- 820 LAMBDA=180+LEARTH+ACAP
- 830 IF LAMBDA<0 THEN LAMBDA=LAMBDA+360
- 840 IF LAMBDA>360 THEN LAMBDA=LAMBDA-360
- 850 L4=FNRAD(LAMBDA-LPRIME):LB=FNRAD(LPRIME-LEARTH)
- 860 BETA=ATN((RPRIME*TAN(PSI)*SIN(L4))/(REARTH*SIN(LB)))
- 870 LAMBDAD=FNRAD(LAMBDA):E4=FNRAD(23.441884#)
- 880 'ROUTINE NO. 27
- 890 DEC2=(SIN(BETA)*COS(E4))+(COS(BETA)*SIN(E4)*SIN(LAMBDAD))
- 900 DEC1=FNARCSIN(DEC2)
- 910 DEC=FNDEG(DEC1)
- 920 YCORD=((SIN(LAMBDAD)*COS(E4))-(TAN(BETA)*SIN(E4)))
- 930 XCORD=COS(LAMBDAD)
- 940 F1=FNDEG(ATN(YCORD/XCORD)):PRINT "LINE 940 F1= ";F1
- 950 IF F1<0 THEN F1=F1+360:PRINT "LINE 950 F1= ";F1
- 960 F2=F1-LAMBDA:PRINT "LINE 960 F2= ";F2
- 970 IF ABS(F2)>180 THEN F1=F1-180:PRINT "LINE 970 F1= ";F1
- 972 IF P=1 AND F1<0 THEN F1=F1+360
- 975 IF P=1 THEN GOTO 1010
- 980 IF F1<0 THEN F1=F1+360
- 990 TEMP=180-ABS(F2):PRINT "LINE 990 TEMP = ";TEMP
- 1000 IF TEMP<1 OR TEMP>-1 THEN F1=F1+180:PRINT "LINE 1000 F1= ";F1
- 1005 IF F1>360 THEN F1=F1-180
- 1010 RIGHTASCENSION=F1/15
- 1020 IF RIGHTASCENSION>24 THEN RIGHTASCENSION=RIGHTASCENSION-12
- 1030 IF Q=1 THEN RIGHTASCENSION=RIGHTASCENSION-12
- 1040 L6=FNRAD(LPLANET):L7=FNRAD(LEARTH)
- 1050 'DIST FROM EARTH
- 1060 P8=SQR(REARTH^2+RPLANET^2-(2*REARTH*RPLANET)*COS(FNRAD(LPLANET-LEARTH)))
- 1070 DISTFMEARTH=P8*93000000#
- 1080 'LIGHT TIME
- 1090 T8=P8*.1386
- 1100 LTHR%=INT(T8):TA=T8-LTHR%:W=TA*60:LTMIN%=INT(W):I=W-LTMIN%:J=I*60:LTSEC%=INT(J+.5)
- 1110 T6=S1/P8
- 1210 D8=LAMBDA-LPLANET
- 1220 D8=FNRAD(D8)
- 1230 'PHASE
- 1240 PHASE=(1/2)*(1+COS(D8))
- 1250 M1=(RPLANET*P8)/(B1*SQR(PHASE))
- 1260 'MAGNITUDE
- 1270 MAGNITUDE=5*(LOG(M1)/LOG(10))-27.49
- 1271 IF P=4 THEN MAGNITUDE=MAGNITUDE-.6
- 1272 IF P=5 THEN MAGNITUDE=MAGNITUDE-.6
- 1280 PHI=FNRAD(PHI)
- 1290 TB=SIN(DEC1)/COS(PHI)
- 1300 IF TB>1! OR TB<-1! THEN GOSUB 12800:GOTO 8000
- 1310 MR=FNARCCOS(TB)
- 1320 MR=FNDEG(MR)
- 1330 Z3=360-MR
- 1340 T4=(-(TAN(PHI))*TAN(DEC1))
- 1350 T4=FNARCCOS(T4)
- 1360 T4=FNDEG(T4):T4=T4*(1/15):RISINGST=24+RIGHTASCENSION-T4
- 1370 IF RISINGST>23.99 THEN RISINGST=RISINGST-24
- 1380 SETTINGST=RIGHTASCENSION+T4
- 1390 IF SETTINGST>23.99 THEN SETTINGST=SETTINGST-24
- 1400 GOSUB 13020
- 1410 PTM=(DAYS%*.0657098)-SPS#
- 1420 IF PTM<0 THEN PTM=PTM+24
- 1430 RISINGMTIME=RISINGST-PTM:IF RISINGMTIME<0 THEN RISINGMTIME=RISINGMTIME+24
- 1440 SETTINGMTIME=SETTINGST-PTM:IF SETTINGMTIME<0 THEN SETTINGMTIME=SETTINGMTIME+24
- 1450 RISING=RISINGMTIME*.99727:SETTING=SETTINGMTIME*.99727
- 1460 IF DL$="Y" THEN RISING=RISING+1:SETTING=SETTING+1
- 1470 IF RISING>23.99 THEN RISING=RISING-24
- 1480 IF RISING<0 THEN RISING=RISING+24:GOTO 1470
- 1490 IF SETTING>23.99 THEN SETTING=SETTING-24
- 1500 IF SETTING<0 THEN SETTING=SETTING+24:GOTO 1490
- 8000 LPRINT:LPRINT:LPRINT:LPRINT:LPRINT:LPRINT
- 8005 LPRINT TAB(25)NAM$;" DATE: ";UT;"/";DD;"/";YEAR
- 8010 LPRINT
- 8015 LPRINT TAB(30)"Equatorial Coordinates"
- 8016 LPRINT
- 8017 LPRINT STRING$(79,196)
- 8050 LPRINT TAB(26)"HRS/DEGREES" TAB(45)"MINUTES" TAB(60)"SECONDS"
- 8070 N=0:G=0
- 8080 IF N=1 THEN X=DEC
- 8090 IF N=0 THEN X=RIGHTASCENSION
- 8110 XT%=INT(X):XA=X-XT%:A=XA*60:B%=INT(A):C=A-B%:D=C*60:E%=INT(D+.5)
- 8130 IF E%=60 THEN B%=B%+1:E%=0
- 8150 IF B%=60 THEN XT%=XT%+1
- 8155 IF N=1 THEN GOSUB 14000
- 8165 IF N=1 THEN GOTO 8210
- 8170 IF N=0 THEN LPRINT TAB(5)"RIGHT ASCENSION" TAB(33)XT% TAB(47)B% TAB(62)E%
- 8180 LPRINT:GOTO 8230
- 8210 IF N=1 THEN LPRINT TAB(5)"DECLINATION " TAB(33)XT% TAB(47)B% TAB(62)E%
- 8230 N=N+1
- 8240 IF N<2 THEN GOTO 8080
- 8250 LPRINT:LPRINT:LPRINT
- 8251 LPRINT
- 8255 LPRINT TAB(5)NAM$;" WILL RISE AND SET AT THESE TIMES:"
- 8256 LPRINT
- 8257 LPRINT TAB(14)"HOUR" TAB(30)"MINUTES" TAB(50)"SECONDS"
- 8258 LPRINT
- 8260 GOSUB 14300
- 8270 LPRINT:LPRINT
- 8272 LPRINT STRING$(79,196)
- 8280 LPRINT TAB(10) "PLANETARY DATA ON EARTH AND ";NAM$
- 8282 LPRINT STRING$(79,196)
- 8290 LPRINT:LPRINT:LPRINT
- 8300 LPRINT USING " EARTH'S DISTANCE TO SUN: ###.############## ASTRONOMICAL UNITS";REARTH
- 8310 LPRINT
- 8320 LPRINT TAB(5)NAM$;:LPRINT TAB(15) USING "DISTANCE TO SUN: ###.##############";RPLANET;:LPRINT " AU"
- 8330 LPRINT
- 8340 LPRINT TAB(5) USING "DISTANCE FROM EARTH: ###.############## ASTRONOMICAL UNITS";P8
- 8350 LPRINT
- 8360 LPRINT TAB(5) USING "DISTANCE FROM EARTH: ###############.#### MILES";DISTFMEARTH
- 8370 LPRINT
- 8380 LPRINT TAB(5) USING "LIGHT TIME: ## HRS ## MIN ## SECS";LTHR%,LTMIN%,LTSEC%
- 8390 LPRINT
- 8400 LPRINT TAB(5) USING "MAGNITUDE: ###.#########";MAGNITUDE
- 8410 LPRINT
- 8420 LPRINT USING " PHASE: ###.#########";PHASE
- 8425 LPRINT
- 8430 LPRINT TAB(5) USING "ANGULAR SIZE: ##.######### ARC SECONDS";T6
- 8435 LPRINT CHR$(12);
- 9999 END
- 10000 NAM$="MERCURY"
- 10002 T1=.24085
- 10005 E1=231.2973
- 10010 W1=77.1442128#
- 10015 C1=.2056306
- 10020 A1=.3870986
- 10025 I1=7.0043579#
- 10030 L1=48.0941733#
- 10035 S1=6.74
- 10040 B1=1.918E-06
- 10050 RETURN
- 10100 NAM$="VENUS"
- 10105 T1=.61521
- 10110 E1=355.73352#
- 10120 W1=131.2895792#
- 10130 C1=.0067826
- 10140 A1=.7233316
- 10150 I1=3.394435
- 10160 L1=76.4997524#
- 10170 S1=16.92
- 10180 B1=1.721E-05
- 10190 RETURN
- 10200 NAM$="MARS"
- 10205 T1=1.88089
- 10210 E1=126.30783#
- 10220 W1=335.6908166#
- 10230 C1=.0933865
- 10240 A1=1.5236883#
- 10250 I1=1.8498011#
- 10260 L1=49.4032001#
- 10270 S1=9.359999
- 10280 B1=4.539E-06
- 10290 RETURN
- 10300 NAM$="JUPITER"
- 10305 T1=11.86224
- 10310 E1=146.966365#
- 10320 W1=14.0095493#
- 10330 C1=.0484658
- 10340 A1=5.202561
- 10350 I1=1.3041819#
- 10360 L1=100.2520175#
- 10370 S1=196.74
- 10380 B1=.0001994
- 10390 RETURN
- 10400 NAM$="SATURN"
- 10405 T1=29.45771
- 10410 E1=165.322242#
- 10420 W1=92.6653974#
- 10430 C1=.0556155
- 10440 A1=9.554747
- 10450 I1=2.4893741#
- 10460 L1=113.4888341#
- 10470 S1=165.6
- 10480 B1=.000174
- 10490 RETURN
- 10500 NAM$="URANUS"
- 10505 T1=84.01247
- 10510 E1=228.0708551#
- 10520 W1=172.7363288#
- 10530 C1=.0463232
- 10540 A1=19.21814
- 10550 I1=.7729895
- 10560 L1=73.8768642#
- 10570 S1=65.8
- 10580 B1=7.768E-05
- 10590 RETURN
- 10600 NAM$="NEPTUNE"
- 10605 T1=164.79558#
- 10610 E1=260.3578998#
- 10620 W1=47.8672148#
- 10630 C1=.0090021
- 10640 A1=30.10957
- 10650 I1=1.7716017#
- 10660 L1=131.5606494#
- 10670 S1=62.2
- 10680 B1=7.597E-05
- 10690 RETURN
- 11000 IF XCOORD>0 AND YCOORD>0 THEN GOSUB 11100
- 11005 IF XCOORD<0 AND YCOORD>0 THEN GOSUB 11200
- 11010 IF XCOORD>0 AND YCOORD<0 THEN GOSUB 11300
- 11020 IF XCOORD<0 AND YCOORD<0 THEN GOSUB 11400
- 11030 RETURN
- 11100 IF TCOORD>0 AND TCOORD<90 THEN RETURN
- 11105 IF TCOORD<-180 THEN TCOORD=TCOORD+360:GOTO 11100
- 11110 IF TCOORD<0 THEN TCOORD=TCOORD+180:GOTO 11100
- 11120 IF TCOORD>90 THEN TCOORD=TCOORD-180:GOTO 11100
- 11130 RETURN
- 11200 IF TCOORD>90 AND TCOORD<180 THEN RETURN
- 11210 IF TCOORD<0 THEN TCOORD=TCOORD+180:GOTO 11200
- 11220 IF TCOORD>180 THEN TCOORD=TCOORD-180:GOTO 11200
- 11230 IF TCOORD<90 THEN TCOORD=TCOORD+90:GOTO 11200
- 11240 RETURN
- 11300 IF TCOORD<360 AND TCOORD>270 THEN RETURN
- 11310 IF TCOORD<-180 THEN TCOORD=TCOORD+360:GOTO 11300
- 11320 IF TCOORD<0 THEN TCOORD=TCOORD+360:GOTO 11300
- 11330 IF TCOORD<180 THEN TCOORD=TCOORD+180:GOTO 11300
- 11340 IF TCOORD>360 THEN TCOORD=TCOORD-180:GOTO 11300
- 11350 RETURN
- 11400 IF TCOORD<270 AND TCOORD>180 THEN RETURN
- 11410 IF TCOORD<0 THEN TCOORD=TCOORD+360:GOTO 11400
- 11420 IF TCOORD<90 THEN TCOORD=TCOORD+180:GOTO 11400
- 11430 IF TCOORD>360 THEN TCOORD=TCOORD-180:GOTO 11400
- 11440 RETURN
- 12800 CLS:LOCATE 10,7:PRINT NAM$;" does not rise or set here!"
- 12810 RETURN
- 13020 MTT=UT:UT=1
- 13030 IF RDY%>1 THEN DTD%=1
- 13040 'COMPUTATION FOR SPS
- 13050 D8%=INT(1):F8#=D8%-1-.5
- 13060 J8%=-INT(7*(INT((UT+9)/12)+YEAR)/4)
- 13070 S8=SGN(UT-9):A8=ABS(UT-9)
- 13080 J9%=INT(YEAR+S8*INT(A8/7))
- 13090 J9%=-INT((INT(J9%/100)+1)*3/4)
- 13100 J8#=J8%+INT(275*UT/9)+D8%+1*J9%
- 13110 JD#=J8#+WT+2*1+367*YEAR
- 13120 IF F8#>=0 THEN 13140
- 13130 F8#=F8#+1:JD#=JD#-1
- 13140 J9#=JD#+F8#-1
- 13150 S5#=J9#-YT
- 13160 T5#=S5#/(365.25*100)
- 13170 R8#=XX+(ZZ*T5#)+(2.581E-05*T5#^2)
- 13180 SPS1#=R8#-(24*(YEAR-1900))
- 13190 SPS#=24-SPS1#
- 13195 UT=MTT
- 13210 RETURN
- 13230 END
- 14000 IF DEC>0 THEN GOTO 14130
- 14110 X=ABS(DEC):XT%=INT(X):XA=X-XT%:XT%=XT%*-1:A=XA*60:B%=INT(A):C=A-B%:D=C*60:E%=INT(D+.5)
- 14120 G=1
- 14130 RETURN
- 14300 N=0
- 14310 IF N=1 THEN X=SETTING
- 14320 IF N=0 THEN X=RISING
- 14330 XT%=INT(X):XA=X-XT%:A=XA*60:B%=INT(A):C=A-B%:D=C*60:E%=INT(D+.5)
- 14340 IF E%=60 THEN B%=B%+1:E%=0
- 14360 IF B%=60 THEN XT%=XT%+1
- 14390 IF N=0 THEN LPRINT TAB(5)"RISING " TAB(14)XT% TAB(30)B% TAB(50)E%
- 14410 IF N=1 THEN LPRINT TAB(5)"SETTING " TAB(14)XT% TAB(30)B% TAB(50)E%
- 14430 N=N+1
- 14440 IF N<2 THEN GOTO 14310
- 14450 RETURN
- 15000 L3=FNRAD(LPRIME-LEARTH)
- 15010 LAMBDAD=ATN((REARTH*SIN(L3))/(RPRIME-(REARTH*COS(L3))))
- 15020 LAMBDA=FNDEG(LAMBDAD):L4=LAMBDA+LPRIME
- 15030 IF L4<0 THEN L4=L4+360
- 15040 IF L4>360 THEN L4=L4-360
- 15050 LAMBDA=L4:LD=FNRAD(L4-LPRIME)
- 15060 BETA=ATN((RPRIME*TAN(PSI)*SIN(LD))/(REARTH*SIN(L3)))
- 15070 GOTO 870
- EN L4=L4-360
- 15050